package dispatch

import "gitee.com/ameise84/e3dds"

// EventFunc 是一个自有事件通知机制,只能通知自身actor的其他系统模块,不能用于通知其他actor对象.
// 如果需要使用跨actor通知,请使用actor.cast(定向推送) / broadcast(广播)
type EventFunc func(actor e3dds.Behavior, args ...any)

// Register 注册事件
func Register(srvID string, event uint32, callback EventFunc) {
	_gCallBack[srvID].register(event, callback)
}

// Trigger 触发事件
func Trigger(behavior e3dds.Behavior, event uint32, args ...any) {
	_gCallBack[behavior.GetSource().ServiceID()].trigger(behavior, event, args...)
}
